﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SistemaControleOrcamentario
{
    public partial class Categoria : Form
    {
        public Categoria()
        {
            InitializeComponent();

            CarregarCategorias();

            /*cbCategoriaPai.Items.Insert(0, new DataLayer.Model.Categoria() { Descricao = "Selecione" });
            cbCategoriaPai.SelectedIndex = 0;*/
        }

        private void CarregarCategorias()
        {
            cbCategoriaPai.DataSource = DataLayer.Model.Categoria.GetAll().OrderBy(p => p.DescricaoCompleta).ToList();
            cbCategoriaPai.DisplayMember = "DescricaoCompleta";
            cbCategoriaPai.ValueMember = "ID";
        }

        private void btnGravar_Click(object sender, EventArgs e)
        {
            DataLayer.Model.Categoria cat = new DataLayer.Model.Categoria();
            cat.Descricao = txtDescricao.Text;
            cat.CategoriaPai = null;

            if ((string)cbTipoDespesa.SelectedItem == "ENTRADA")
            {
                cat.TipoLancamento = DataLayer.Model.Categoria.eTipoLancamento.Entrada;
            }
            else
            {
                if ((string)cbTipoDespesa.SelectedItem == "SAÍDA")
                {
                    cat.TipoLancamento = DataLayer.Model.Categoria.eTipoLancamento.Saida;
                }
                else
                {
                    MessageBox.Show("Selecione o tipo de Lançamento");
                    return;
                }
            }


            if (chbEspecificarPai.Checked)
            {
                cat.CategoriaPai = (DataLayer.Model.Categoria)cbCategoriaPai.SelectedItem;
            }
            cat.Salvar();
            txtDescricao.Text = "";

            CarregarCategorias();
        }

        private void chbEspecificarPai_CheckedChanged(object sender, EventArgs e)
        {
            cbCategoriaPai.Enabled = chbEspecificarPai.Checked;
        }
    }
}
